#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

typedef int StackDataType;

typedef struct Stack
{
	StackDataType* a;
	int top;
	int capacity;
}Stack;

//栈的初始化
void StackInit(Stack* ps);

//栈的销毁
void StackDestory(Stack* ps);

//压栈
void StackPush(Stack* ps, StackDataType x);

//出栈
void StackPop(Stack* ps);

//获取栈顶元素
StackDataType GetStackTop(Stack* ps);

//判空
bool StackEmpty(Stack* ps);

//获取栈中有效元素的个数
int GetStackSize(Stack* ps);